#include <stdio.h>
#include <stdlib.h>

int a;
unsigned char va[6] = {0xa, 0x2, 0x3, 4, 5, 6};

void set_bit3()
{
    /*1169:	f3 0f 1e fa          	endbr64 
    116d:	55                   	push   %rbp
    116e:	48 89 e5             	mov    %rsp,%rbp
    1171:	8b 05 a5 2e 00 00    	mov    0x2ea5(%rip),%eax        # 401c <a>
    1177:	83 c8 08             	or     $0x8,%eax
    117a:	89 05 9c 2e 00 00    	mov    %eax,0x2e9c(%rip)        # 401c <a>*/
		a |= 0x8;

    /*1180:	90                   	nop
    1181:	5d                   	pop    %rbp
    1182:	c3                   	retq   */
}

void clear_bit3()
{
    /*1183:	f3 0f 1e fa          	endbr64 
    1187:	55                   	push   %rbp
    1188:	48 89 e5             	mov    %rsp,%rbp
    118b:	8b 05 8b 2e 00 00    	mov    0x2e8b(%rip),%eax        # 401c <a>
    1191:	83 e0 f7             	and    $0xfffffff7,%eax
    1194:	89 05 82 2e 00 00    	mov    %eax,0x2e82(%rip)        # 401c <a>*/
		a &= ~0x8;

    /*119a:	90                   	nop
    119b:	5d                   	pop    %rbp
    119c:	c3                   	retq   */
}

int main()
{
    /*119d:	f3 0f 1e fa          	endbr64 
    11a1:	55                   	push   %rbp
    11a2:	48 89 e5             	mov    %rsp,%rbp
    11a5:	48 83 ec 10          	sub    $0x10,%rsp
    11a9:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    11b0:	00 00 
    11b2:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    11b6:	31 c0                	xor    %eax,%eax
    11b8:	c7 05 5a 2e 00 00 03 	movl   $0x3,0x2e5a(%rip)        # 401c <a>
    11bf:	00 00 00 */
		a = 3;

    /*11c2:	c7 45 f2 0a 02 03 04 	movl   $0x403020a,-0xe(%rbp)
    11c9:	66 c7 45 f6 05 06    	movw   $0x605,-0xa(%rbp)*/
		char vb[6] = {0xa, 2, 3, 4, 5, 6};

    /*11cf:	be 08 00 00 00       	mov    $0x8,%esi
    11d4:	48 8d 3d 29 0e 00 00 	lea    0xe29(%rip),%rdi        # 2004 <_IO_stdin_used+0x4>
    11db:	b8 00 00 00 00       	mov    $0x0,%eax
    11e0:	e8 8b fe ff ff       	callq  1070 <printf@plt> */
		printf("a = %d\n", 8);

    //11e5:	e8 7f ff ff ff       	callq  1169 <set_bit3>
		set_bit3();

    /*11ea:	8b 05 2c 2e 00 00    	mov    0x2e2c(%rip),%eax        # 401c <a>
    11f0:	89 c6                	mov    %eax,%esi
    11f2:	48 8d 3d 0b 0e 00 00 	lea    0xe0b(%rip),%rdi        # 2004 <_IO_stdin_used+0x4>
    11f9:	b8 00 00 00 00       	mov    $0x0,%eax
    11fe:	e8 6d fe ff ff       	callq  1070 <printf@plt>
	1203:	b8 00 00 00 00       	mov    $0x0,%eax*/
		printf("a = %d\n", a);
    
    //1208:	e8 76 ff ff ff       	callq  1183 <clear_bit3>
		clear_bit3();

    /*120d:	8b 05 09 2e 00 00    	mov    0x2e09(%rip),%eax        # 401c <a>
    1213:	89 c6                	mov    %eax,%esi
    1215:	48 8d 3d e8 0d 00 00 	lea    0xde8(%rip),%rdi        # 2004 <_IO_stdin_used+0x4>
    121c:	b8 00 00 00 00       	mov    $0x0,%eax
    1221:	e8 4a fe ff ff       	callq  1070 <printf@plt> */
		printf("a = %d\n", a);

    /*1226:	0f b6 45 f2          	movzbl -0xe(%rbp),%eax
    122a:	0f be c0             	movsbl %al,%eax
    122d:	89 c6                	mov    %eax,%esi
    122f:	48 8d 3d ce 0d 00 00 	lea    0xdce(%rip),%rdi        # 2004 <_IO_stdin_used+0x4>
    1236:	b8 00 00 00 00       	mov    $0x0,%eax
    123b:	e8 30 fe ff ff       	callq  1070 <printf@plt>*/
		printf("a = %d\n", vb[0]);

    /*1240:	0f b6 05 c9 2d 00 00 	movzbl 0x2dc9(%rip),%eax        # 4010 <vver>
    1247:	0f b6 c0             	movzbl %al,%eax
    124a:	89 c6                	mov    %eax,%esi
    124c:	48 8d 3d b1 0d 00 00 	lea    0xdb1(%rip),%rdi        # 2004 <_IO_stdin_used+0x4>
    1253:	b8 00 00 00 00       	mov    $0x0,%eax
    1258:	e8 13 fe ff ff       	callq  1070 <printf@plt>*/
		printf("a = %d\n", va[0]);

    /*125d:	b8 00 00 00 00       	mov    $0x0,%eax
    1262:	48 8b 55 f8          	mov    -0x8(%rbp),%rdx
    1266:	64 48 33 14 25 28 00 	xor    %fs:0x28,%rdx
    126d:	00 00 
    126f:	74 05                	je     1276 <main+0xd9>
    1271:	e8 ea fd ff ff       	callq  1060 <__stack_chk_fail@plt>
    1276:	c9                   	leaveq 
    1277:	c3                   	retq   
    1278:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
    127f:	00 */
		return 0;
}
